CODE THANKS FESTIVAL 2017 C - Factory
https://atcoder.jp/contests/code-thanks-festival-2017-open/tasks/code_thanks_festival_2017_c
提出
code: python
import heapq
n, k = map(int, input().split())
a = []
b = []
for i in range(n):
A, B = int(i) for i in input().split()
a.append(A)
b.append(B)
# heapqからindex取れないと、何を足して格納すればいいかわからない
# あらかじめ足しておく?
# だとしたらsortすればいいわけでheapを使う必要はない
# time = []
# for i in range(n):
# for j in range(1000):
# time
解答
code: python
import heapq
n, k = map(int, input().split())
ab = list(map(int, input().split())) for _ in range(n)
init = []
increase = []
for a, b in ab:
init.append(a)
increase.append(b)
# print(init)
# 1, 2, 3
# print(increase)
# 3, 0, 4
hq = []
heapq.heapify(hq)
for i in range(n):
# 操作前の所要時間とその要素のインデックスをセット
heapq.heappush(hq, (initi, i))
# print(hq)
# (1, 0), (2, 1), (3, 2)
ans = 0
for i in range(k):
# 最小所要時間とそのときの要素のインデックスを取り出す
time, idx = heapq.heappop(hq)
ans += time
# 操作後に所要時間を更新
heapq.heappush(hq, (time + increaseidx, idx))
print(ans)
テーマ
蟻本 2-4 Expedition
メモ
AtCoder CODE THANKS FESTIVAL 2017 (Parallel) C - Factory
提出
code: python
n, k = map(int, input().split())
ab = list(map(int, input().split())) for _ in range(n)
# dpij := かかる時間の最小値 <- 添え字が大きすぎる